#pragma once
#ifndef DEBUG_MANAGER_H
#define DEBUG_MANAGER_H

#include <vector>
#include "BoundingBox.h"
#include "Shader.h"
#include "Ray.h"

class DebugManager {
public:
    static DebugManager& getInstance() {
        static DebugManager instance;
        return instance;
    }

    DebugManager(DebugManager const&) = delete;
    void operator=(DebugManager const&) = delete;

    void addRay(const Ray& ray);
    void addBoundingBox(const BoundingBox& box, glm::mat4 identityMatrix);
    void render(Shader& shader);

private:
    DebugManager() {}
    std::vector<Ray> rays;
    std::vector<std::pair<BoundingBox, glm::mat4>> boundingBoxes;
};

#endif // DEBUG_MANAGER_H